package Stream02;

import java.util.ArrayList;
import java.util.stream.Stream;

/*
Stream流常用的中间操作方法
       static <T> Stream<T> concat (Stream a,Stream b):合并a和b两个流为一个流
       Stream<T> distinct ():返回由该流的不同元素(根据Object.equals(Object))组成的流
 */
public class StreamDemo04 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();

        list.add("姜恒星");
        list.add("张无忌");
        list.add("王祖贤");
        list.add("郝万杰");
        list.add("邓吉壕");
        list.add("侯佳超");

        //需求一：取前4个元素组成一流
        Stream<String> s1 = list.stream().limit(4);

        //需求二：跳过两个元素组成一个流
        Stream<String> s2 = list.stream().skip(2);

        //需求三：合并需求1和需求2的流，并把结果在控制台输出
        Stream.concat(s1,s2).forEach(System.out::println);//调用Stream中的静态方法concat()进行合并

        //需求四：合成需求1和需求2得到的流，并在控制台输出，要求字符串元素不能重复
        Stream.concat(s1,s2).distinct().forEach(System.out::println);//调用了Stream中的静态方法distinct()去掉重复元素
    }
}
